package cn.wen.mybatis.framework.scripting.xmltags;

/**
 * 处理节点 动态标签
 * SqlNode的各个实现类使用了组合设计模式，mybatis通过使用组合设计模式帮助上层调用者屏蔽了对象的复杂性，
 * 也使得如果后续需要添加新的SqlNode类型的话，会变得非常容易，符合开闭原则。
 */
public interface SqlNode {
  /**
   *
   * @param context 上下文，在执行时该对象会持有用户传入的实际参数
   * @return 当前 SQL Node 节点是否应用成功
   */
  boolean apply(DynamicContext context);
}
